package com.kerrykidz.sms.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.kerrykidz.sms.dao.model.SmsBatchCondEntity;
import com.kerrykidz.sms.dao.model.SmsBatchEntity;
import com.kerrykidz.sms.dao.model.SmsContEntity;
import com.kerrykidz.sms.dao.model.SmsOutBoxEntity;
import com.rdp.framework.exception.RDPException;

/**
 * 批量发送短信内容
 * @ClassName: IBatchService 
 * @description: 大致描述该类的用途，内容简短易懂 
 * @author: wolf-yansl 
 * @date: 2014年9月25日 上午11:07:34 
 * @version: V1.0
 *
 */
public interface IBatchService {
	
	/**
	 *  查询批次  模糊查询  批次Id 查询
	 * @param entity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月25日
	 */
	public List<SmsBatchEntity> findSmsBatchEntity(SmsBatchEntity entity)throws RDPException;
	/***
	 *  查询指定批次对象
	 * @param smsBatchId
	 * @throws RDPException
	 * @date: 2014年9月25日
	 */
	public  SmsBatchEntity findBySmsBatchId(String smsBatchId) throws RDPException;
	
	
	public SmsBatchEntity addSmsBatchEntity(SmsBatchEntity entity)throws RDPException;
	public SmsBatchEntity updateSmsBatchEntity(SmsBatchEntity entity)throws RDPException;
	public void deleteSmsBatchEntity(SmsBatchEntity entity)throws RDPException;
	public void updateCloseSmsBatchEntity(SmsBatchEntity entity)throws RDPException;
	
	
	
	/**
	 * 模板条件查询
	 * @param entity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月25日
	 */
	public List<SmsContEntity> findSmsContEntity(SmsContEntity entity) throws RDPException;
	public SmsContEntity addSmsContEntity(SmsContEntity entity) throws RDPException;
	public void updateSmsContEntity(SmsContEntity entity) throws RDPException;
	public void deleteSmsContEntity(SmsContEntity entity) throws RDPException;
	
	/***
	 * 短信发送内容  查询
	 * @param entity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月25日
	 */
	public List<SmsOutBoxEntity> findSmsOutBoxEntity(SmsOutBoxEntity entity)throws RDPException;
	public void deleteSmsOutBox(String fkBatchId,String pkSmsId)throws RDPException;
	
	
	/**
	 * 查询 短信  抽样条件
	 * @param entity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月24日
	 */
	public List<SmsBatchCondEntity> findSmsBatchCondEntity(SmsBatchCondEntity entity ) throws RDPException;
	
	/**
	 * 批次条件获取发送短信号码
	 * @param entity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月29日
	 */
	public List<String> findSmsBatchCondPhoneList(SmsBatchCondEntity entity ,List<SmsBatchCondEntity> entityList)throws RDPException;
	/**
	 * 批次条件获取发送短信号码   个数
	 * @param entity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月29日
	 */
	public int findByBatchCondWherePhoneCount(SmsBatchCondEntity entity )throws RDPException;
	
	/**
	 * 查询发送历史
	 * @param entity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月29日
	 */
	public List<SmsBatchEntity> findHisBatchWhere(SmsBatchEntity entity)throws RDPException;
}
